package com.toycloud.common.convert;
import com.alibaba.excel.write.handler.CellWriteHandler;
import com.alibaba.excel.write.handler.WriteHandler;
import com.alibaba.excel.write.handler.context.CellWriteHandlerContext;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.*;



@Slf4j
public class CustomCellStyleHandler implements CellWriteHandler {

    @Override
    public void afterCellDataConverted(CellWriteHandlerContext context) {
        // 获取单元格
        Cell cell = context.getCell();
        // 获取工作簿
        Workbook workbook = context.getWriteWorkbookHolder().getWorkbook();

        // 创建单元格样式
        CellStyle cellStyle = workbook.createCellStyle();
        cellStyle.setWrapText(true); // 允许换行
        cellStyle.setAlignment(HorizontalAlignment.CENTER); // 水平居中
        cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 垂直居中

        // 设置单元格样式
        cell.setCellStyle(cellStyle);

        // 如果数据是字符串类型，将逗号替换为换行符
        if (cell.getCellType() == CellType.STRING) {
            String cellValue = cell.getStringCellValue().replace(",", "\n");
            cell.setCellValue(cellValue);
        }
    }

    // 其他方法可以根据需要实现
    @Override
    public void beforeCellCreate(CellWriteHandlerContext context) {
        // 在单元格创建之前可以做一些操作
    }

    @Override
    public void afterCellCreate(CellWriteHandlerContext context) {
        // 在单元格创建之后可以做一些操作
        // 在单元格创建之后调整列宽
        Cell cell = context.getCell();
        Sheet sheet = cell.getSheet();
    }
}
